package api;

import com.sun.jmx.remote.internal.ArrayQueue;

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;

public class QueueTest {
    public static void main(String[] args) {
        //linkedlist本身就是一个队列接口的实现类
        Queue<Object> queue = new LinkedList<>();
        //添加数据先进
        queue.add(100);
        queue.add(200);
        queue.add(300);
        System.out.println(queue.remove());//100
        System.out.println(queue.remove());//200
        System.out.println(queue.remove());//300
        //基于数组实现的双端队列（入口也可以作为出口，出口也可以作为入口）
        ArrayDeque arrayDeque = new ArrayDeque<>();
        arrayDeque.addLast(100);
        arrayDeque.addFirst(200);
        arrayDeque.addLast(300);//[200,100,300]
        System.out.println(arrayDeque.peek());//返回队首的元素
        System.out.println(arrayDeque.removeFirst());
        System.out.println(arrayDeque.removeLast());
        System.out.println(arrayDeque.removeLast());
    }
}
